extern int relop;
extern int addop;
extern int mulop;
extern int acctype;
extern FILE *target;

#ifndef EXPR
  #define EXPR 1
#endif
#ifndef STMT
  #define STMT 2
#endif
#ifndef PARM
  #define PARM 3
#endif

void concatgenasm();
void concattextasm(char *);
void concatfuncasm(char *);
void concatstmtasm(char *);
void concatexprasm(char *);
void initparmauxasm();
void concatparmauxasm(char *,int);
void concatparmasm();
char *convertfloat2ieee(char *,char *);
void funcgen(char *);
void endfuncgen(int,char *);
void exitgen();
void rodatagen();
void textgen();
void bssgen(int);
void declvargen(int,char *,int);
void lblflowgen(int);
void lblgen(int);
void jmptruegen(int,int);
void jmpfalsegen(int,int);
void jmpgen(int);
void jmplblgen(int);
void jmplblconcgen(char *);
void relopgen();
void addopgen(int,int);
void mulopgen(int,int);
void notgen();
void neggen();
void moveeaxtoecxgen();
void incecxgen(int,char *);
void dececxgen(int,char *);
void cmpforgen(int,char *);
void pushgen(int,int);
void popgen(int);
void callgen(char *,int);
void assigngen(int,char *);
void assignuintgen(int,char *,char *);
void assignfloatgen(int ,char *,char *);
void varexprgen(int,char *);
void promotiongen(int);
void strconstgen(int,char *);
void strconstlngen(int,char *);
void printgen(int);
void readgen();
